package top.superflow.core.config

import top.superflow.core.metadata.MetadataAble
import top.superflow.core.statis.Metrizable

import scala.concurrent.Future

trait Configurable [C <: MetadataAble]{
  
  /**
   * Anything
   */
  def initialize (configuration : C): Future[Metrizable[_]]
  
  def getConfig : C
  
  def reset : Future[Metrizable[_]]
  
  def hotApply(configuration : C) : Future[Metrizable[_]]
}

